1. Field
The disclosure relates generally to data processing systems and, in particular, to managing requests received from clients. Still more particularly, the present disclosure relates to load balancing in managing requests received from clients.
2. Description of the Related Art
The Internet is a global system of computer networks that are connected to each other. These networks may be private, public, government, and/or other types of networks. The Internet is used to provide various services and content to users. For example, many users may visit websites to obtain information, download files, purchase goods and services, make financial transactions, and perform other operations.
Organizations put up websites on the Internet to provide goods and services to users. A website may receive many requests for processing. One manner in which requests may be handled is to use multiple server computers with server applications that handle the requests. With this architecture, distributing requests across the server computers is desirable to maintain a desired level of responsiveness in processing the requests.
Load balancing is a technique that is used to distribute the workload across multiple computers, computer clusters, or other resources to increase the use of those resources. Further, load balancing also may be used to increase reliability through providing redundancy for different resources.
Load balancing may be provided through software, hardware, or a combination of the two. A switch, a domain name server, and other types of devices may be used to provide load balancing.
A load balancer typically listens on a cluster internet protocol address and port where clients connect to access services. Multiple server applications may be put together as a server application group. The load balancer sends requests to these server applications in the server application group. Each of the server applications in a server application group is usually identified by a unique Internet protocol address. Typically, all of the server applications in the group have the same port number. The load balancer forwards the requests to one of the server applications. The requests are sent to server applications using their respective Internet protocol address.
The manner in which requests are forwarded to different server applications may be performed in different ways. For example, if a service is provided by five servers, a load balancer may distribute requests for processing to those servers in a manner that increases the speed at which requests can be processed. In other words, the load balancer attempts to even out or manage the workloads on the different servers.
This type of load balancing may be performed in a number of different ways. For example, a round robin system may be used to alternate which server receives requests each time a request is received from a client. In another example, requests may be sent to servers based on the available system resources and workload on the server. The different servers may send information about resource availability and workload to a workload manager component. The workload manager uses the information to generate recommendations on how requests should be distributed. The load balancer may then use these recommendations to distribute requests for processing.